This utility will allow you to scan through an .EXE or .DLL file and view
all icons present. Icons are not divided into icon groups, so you might
see multiple versions of the same icon (these will be icons used for different
resolution devices). By using the right arrow button, the next icon will be
displayed and by using the left arrow button the previously viewed icon can
be brought back and displayed. The right and left arrow keys of the keyboard
can also be used to view icons. The Page Up and Page Down keys can be used
to move between icon groups, Page Down being used to advance to the next
group, Page Up being used to regress to the previous group.
If the Save button is pressed, a filename may be entered and the currently
visible icon will be saved into a file with the .ICO format. You will be
presented with a dialog box asking for a file name. There will also be two
radio buttons, one asking if you'd like to save the icon group, another
asking if you'd like to save the individual icon. While advancing through
the icons, you may have noticed that some icons have the same name or number.
These icons are called an icon group and, if the icon group radio button is
enabled, all of these icons will be stored in the same file. Such icon group
files are used to adjust the icon for different devices. Thus, using an icon
group file will display a different icon based on whether the computer has a
VGA, EGA, Monochrome, or CGA display. All four of these device types will
not always be represented in a group, so don't worry if you only see one or
two icons with the same name or number.
If the Replace button is pressed, you will be presented with a dialog box
containing an edit field filled with the name of the currently viewed
icon. If you wish to change the name or number of this icon, you may type
what you wish in this edit field. If the Cancel button is pressed at this
time the name of the icon will NOT be changed. If the OK button is
pressed the name of that icon will immediatly be changed in the file and
you will be presented with a file selection dialog box. This box contains a
list of all files with the .ICO extension in your current directory, and a
list of directories and drives to which you can also look. Mr. Icon can also
read files with the Windows BMP format and it will automatically convert the
BMP file into the icon format and save the image into the file as an icon.
After selecting a .ICO or .BMP file from this list, or typing a file name
directly into the edit control above the file listbox, a dialog box will
appear with a combo-box, an OK and a Cancel button. If the arrow on the right
side of the combo-box is pressed, a list of all icon formats in the .ICO file
selected will be given. By clicking on any of these formats, the list will disappear and the selected item will fill in the combo-box. By pressing OK, the
selected icon will replace the icon currently being viewed by Mr. Icon. If
the Cancel button is pressed, the currently viewed icon will NOT be changed.
If a BMP file was selected as the file to be used, this box will not appear
since bitmap files are only capable of storing a single image.
NOTE: The facility to import BMP files will not check the dimensions of
the bitmap. It is possible to have 64 x 64 pixel images used for
icons and I don't know if there are any limits beyond that. The
dimensions normally used for icons in a windows program are as
follows (the following dimensions are in height x width):
32 x 16, 2 color - CGA
32 x 32, 2 color - Monochrome
32 x 32, 8 color - EGA
32 x 32, 16 color - VGA
I have also tested the system using 64 x 64 pixel bitmaps in both
2 color and 16 color and both seem to have worked with the program
manager and with Windows in general. Mr. Icon will not officially
support the use of dimensions other than these listed.
The Paint program distributed with Windows 3.0 may save files in
the .BMP format and these files may be used with Mr. Icon. In order
to make the job of editing easier what you may do is create a larger
bitmap and zoom into that bitmap. Then create a 32 x 32 image and
use copy and paste to paste that 32 x 32 image into a 32 x 32 bitmap.
NOTE: Due to the fact that it would be an error to have more than one icon
for the same device format in a group, Mr. Icon will look at all icons
in the current group. If the format of the icon selected for
replacement does not match the icon being replaced, but does match
the format of another icon in the group, that icon will not be
replaced.
If the Add button is pressed, you will be presented with a dialog box
containing a list of all files with the .ICO extension in your current
directory, and a list of directories and drives to which you can also look.
Mr. Icon will also support the use of .BMP files as images to be added as
icons. In order to use a .BMP file merely type the file name and path
directly into the File Open edit control, or type *.BMP in this edit control
to get a list of all .BMP files. Please read the NOTE: immediatly following
the documentation on replace for more information. If you press the Cancel
button at this time, no icon will be added to the file. If you select a .ICO
or .BMP file from this list and press the OK button, a dialog box will appear
with an edit field asking for an ID number or ID name for the icon
you will be adding. This ID number or name will be the same ID or name you
will see in the "Icon Name:" field of the icon information displayed by
Mr. Icon. When the OK button is pressed the cursor will change to an
hourglass and there will be some disk activity as Mr. Icon readjusts the
file and adds the icon (or icons if the .ICO file contains more than one image).
If the Cancel button is pressed in the name dialog box, neither the icon nor
the icon name will be added to the file.
NOTE: At this time, you can not add an icon to a program or DLL that
contains no resources. Included with Mr. Icon is a DLL named
"emptydll.dll". You may change this name to any name you desire.
If you wish to create a DLL with only your icons in it, merely
add an icon of your own and delete the icon currently contained
in the "emptydll.dll" file.
If the Delete button is pressed the cursor will change to an hourglass
and there will be some disk activity as Mr. Icon readjusts the file to
remove the icon (or icons if the icon chosen contains more than one
image).
This program was created as a quick way to view and maintain icons in
icon libraries (DLL's) available since the available tools (e.g. The Whitewater
Resource Toolkit and Borland Resource Workshop) require somewhat more time to
perform minor functions such as this. This should offer an easy way to
quickly extract only the icons that one wants and/or needs. For more advanced
manipulation or for the editing of icons, I would suggest purchasing one of
the two tools mentioned previously.
Mr. Icon can be run from DOS. An introduction screen will appear that gives
a brief synopsis of the program. Pressing 'r' at this screen will run
Windows and Mr. Icon, provided that Windows is in the path someplace.
Mr. Icon can also be run with a file name as a parameter. So, if you want
to look at the file "progman.exe" and you are in DOS, you can type:
mricon progman.exe
at the DOS prompt and after the introduction screen is displayed merely
press the 'r' key and Mr. Icon will run with progman.exe already open.
NOTE: Due to radically different formats, Windows Version 2.1 icons can not
be read by this utility. Some programs may run under both Windows 2.1 and
Windows 3.0. An example of this is WinWord. Icons in such programs are
stored in Windows 2.1 format, and thus can not be read. If a Windows 2.1
program is open by Mr. Icon, an error message will appear saying that
the file is in Windows 2.1 format.
NOTE: PLEASE MAKE BACKUPS OF YOUR PROGRAMS SINCE Mr. Icon DOES NOT MAKE
BACKUPS!
** Product registration information **
If you find this program interesting and would like to hear about future
enhancements and/or tools please send $25 to:
Patrick Deupree
Iseult Technology
4500 Sojourn, #2606
Addison, TX 75248
If you are using Mr. Bitmap and/or Mr. Cursor as well, a single $40
registration fee will cover information on all three products.
Please mail any comments you might have to the above address or send me
e-mail on CompuServe at user ID 76427,442. I urge people to make
comments and suggestions as that is the only way to truly see what people
like and do not like about a product.
** Changes from Icon Extract/Icon Manager/Icon Librarian/Mr. Icon v1.0 **
Mr. Icon has gone through a few name changes since it was first written
due to previously created programs by other shareware authors bearing
the same name. I apologize for any confusion that may have occurred due
to the frequent name changes during the early months of this product.
As of about late May, the name of this product has been Mr. Icon. The
functional changes between Icon Manager, Icon Librarian and Mr. Icon were
minimal, so I will merely cover the general changes from these early versions
to this current version.
Memory: The original versions of Mr. Icon would load all icons read from a
file into memory. This has now been changed. The current mechanism
will only store the currently viewed icon in memory. The minute
the next or previous buttons are pressed, the current icon will
be disposed of in memory and the next or previous icon will be
directly read from the file.
Speed: The new Mr. Icon has a somewhat improved file adjustment mechanism
that makes replacement, addition and deletion somewhat faster than
they were or would have been before.
Features: The new Mr. Icon has four main features that were not present in
previous publicly released versions. The first new feature is
the ability to change the name of the currently viewed icon in the
file. The second is the ability to add icons to a file. The
third is the ability to delete icons in a file. More information
on each of these features may be found in the preceding section
telling how to use Mr. Icon. The fourth new feature is the
ability to read .BMP files as well as .ICO files when replacing
or adding an icon.
Bugs: The previous Mr. Icon did have a few bugs. One of these was the
file open dialog box. Previously, typing a file path directly into
the edit control above the file list box would not successfully
open the file. In addition, trying to edit files on the root
directory of any drive caused a few problems. All of these bugs
have been fixed.
Another bug that existed previously involved opening more than one
session of the Mr. Icon program. The square that actually displayed
the icon would exhibit some odd behavior (e.g. opening a second
session of Mr. Icon would cause the display area of the first
session to be filled with the second sessions icon). This has
been fixed as well.
** Registration reminders **
I've not put an "automatic" about box or timed registration reminder in this
program, the reason being I've always found such things annoying, most
people ignore them, and it's a waste of time to write the code that does
so.
** Development Tools **
You will notice that this program was created in two parts, one of which
being a Dynamic Link Library. The "ToolLib.DLL" file contains various
code sets that perform the following actions:
resinfo: This contains functions oriented toward the following purposes:
Retrieving a list of all ID's within the file of a certain
resource type.
Adjusting the ID's of resources to accomodate insertion/deletion.
Retrieving data for a specific resource type and ID.
Modifying data for a specific resource type and ID.
Adding a resource to an file either before a specified ID
or at the end of the resources of that type.
Deleting data for a specific resource type and ID.
bitmaps: This currently contains two major functions. One will read
a .BMP file and return its file header information, and its
bitmap information. The other will write a .BMP file given
just the bitmap information (the function will create the
file header based on information in the bitmap).
icons: This currently contains three major functions. One will read
a .ICO file and return its file header information, and its
actual icon information. The other two functions deal with
writing icons to a file. One will save an icon group given
the icon header from an EXE file and a list of handles containing
the individual icons that are to be saved in the group. The
other will save a single icon and create the icon file header
to accommodate that single icon.
cursors: This currently contains two major functions. One will read
a .CUR file and return its file header information, and its
actual cursor information. The second function will save
cursor information to a file. This function will create
the cursor file header for you and the cursor information is
expected in the same format as it is stored in an executable
file (that is, the cursor information is preceded by two
numbers representing the X and Y position of the hot-spot).
bitview: This is a window class that will display a bitmap, cursor, or
icon of a size less than 64K. If the item being displayed
is larger than the set space for the window, scroll bars will
appear automatically and all scrolling is handled by the
window class.
names: This is a set of functions used to manipulate the name table
of an EXE files resources.
This contains functions oriented toward the following purposes:
Addition of a name to the name table.
Deletion of a name from the name table.
Retrieval of a name given the items type and ID.
Comparison of a name, to find if it already exists in the table.
Documentation for this DLL is available, though I've not yet set a
price for it.
In addition to these tool sets, I've created a DOS program that will extract
Icon, Bitmap, and Cursor resources from an executable or resource file and
will also display information on Dialog, Menu, and String entries (such
as name, and info on menu items and controls such as item width, item ID, and
item name).
The reason I mention these is that I would be interested in finding out how
many people would like these tools. I make no promises as to the
availability of these tools as how much work I put into them depends on